package com.lovo.project.dao;

import com.lovo.project.model.RoleDO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @title 角色持久层接口
 * @author: luo
 * @date: 2020/11/3 21:13
 */
public interface RoleDAO {

    /**
     * 按编号查询角色
     * @param roleId
     * @return 角色
     */
    RoleDO selectRoleById(Integer roleId);

    /**
     * 根据id删除角色
     *
     * @param roleId 角色id
     * @return 影响数据库行数
     */
    int deleteRoleById(Integer roleId);

    /**
     * 添加角色
     *
     * 如果影响数据库行数<=0，则抛出添加角色异常
     * @param roleDO 角色对象
     * @return 影响数据库行数
     */
    int insertRole(RoleDO roleDO);

    /**
     * 动态查询角色
     *
     * 如果返回的list长度<=0.则抛出查询角色异常。
     *
     * @param roleName 需要查询的角色名称
     * @return 查询到的角色集合
     */
    List<RoleDO> selectRoleByInfo(@Param("name") String roleName);

    /**
     * 修改角色
     *
     * 如果返回的影响行数<=0。则抛出修改角色异常
     * @param roleDO 角色实体类
     * @return
     */
    int updateRole(RoleDO roleDO);


}
